package dao;

import hbt.HibernateUtil;
import model.Categoria;
import model.Posicion;
import model.Torneo;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

public class CategoriaDAO {

	private static CategoriaDAO dao;
	private static SessionFactory sf = null;
	
	public static CategoriaDAO getInstance(){
		if(dao == null){
			sf = HibernateUtil.getSessionFactory();
			dao = new CategoriaDAO();
		} 
		return dao;
	}
	
	//crea una categoria dese CERO (sin ascensos ni descensos)
	public boolean persist(Categoria categoria, Torneo t){
		try{
			Session session = sf.openSession();
			session.beginTransaction();
			Torneo parent = (Torneo) session.load(Torneo.class, t.getId());
			parent.addCategoria(categoria);
			session.save(categoria);
			//session.merge(categoria);
//			for(Posicion p : categoria.getPosiciones()){
//				session.save(p);
//			}
			session.flush();
			session.getTransaction().commit();
			session.close();
			
		    return true;
		}catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
}
